errno.h এর ধারণা এবং এর প্রয়োজনীয়তা

Computer Programming - সি স্ট্যান্ডার্ড লাইব্রেরি রেফারেন্স (C Standard Library Reference) Error Handling Functions (এরর হ্যান্ডলিং ফাংশনস) |
198
198

errno.h এর ধারণা এবং এর প্রয়োজনীয়তা

errno.h হেডার ফাইলটি সি প্রোগ্রামিং ভাষায় ত্রুটি নির্দেশক (error handling) ব্যবস্থাপনার জন্য ব্যবহৃত হয়। এটি ত্রুটি ঘটলে, সেই ত্রুটির কোড (error code) বা সংখ্যাগত মানকে ধরে রাখে, যা ত্রুটির ধরন সম্পর্কে তথ্য প্রদান করে। যখন একটি ফাংশন সফলভাবে কাজ করতে ব্যর্থ হয়, তখন errno ভেরিয়েবলে একটি নির্দিষ্ট ত্রুটি কোড সেট করা হয়। প্রোগ্রামাররা এই কোড চেক করে নির্ধারণ করতে পারেন ত্রুটির প্রকৃতি কী এবং সেই অনুযায়ী প্রয়োজনীয় পদক্ষেপ নিতে পারেন।


errno.h এর প্রয়োজনীয়তা

১. ত্রুটি পরিচালনা সহজ করে: errno.h এর মাধ্যমে ত্রুটি চিহ্নিত ও ব্যাখ্যা করা সহজ হয়। প্রোগ্রামিংয়ে অনেক ফাংশন (যেমন fopen(), malloc(), ইত্যাদি) যখন নির্দিষ্ট কারণে সফলভাবে কাজ করতে ব্যর্থ হয়, তখন errno ব্যবহার করে ত্রুটির কারণ নির্ধারণ করা সম্ভব।

২. ডিবাগিং সহজ করে: ত্রুটির কোড দেখিয়ে errno.h প্রোগ্রাম ডিবাগ করার ক্ষেত্রে সহায়ক হয়। কোডের কোথায় কোন ত্রুটি ঘটেছে এবং তার কারণ কী, তা দ্রুত নির্ধারণ করা যায়।

৩. উন্নত ব্যবহারকারীর প্রতিক্রিয়া: ত্রুটির ধরন অনুযায়ী ব্যবহারকারীকে উপযুক্ত বার্তা দেখানো যায়। যেমন, ফাইল না পাওয়া গেলে "File not found" বার্তা দেখানো যেতে পারে।


errno এর সাধারণ ব্যবহৃত ত্রুটি কোডসমূহ

errno.h এ কিছু পূর্বনির্ধারিত ত্রুটি কোড রয়েছে, যা বিভিন্ন ধরনের ত্রুটি নির্দেশ করে। নিচে কিছু সাধারণ ত্রুটি কোডের তালিকা এবং তাদের ব্যাখ্যা দেওয়া হলো:

ত্রুটি কোডঅর্থব্যাখ্যা
EACCESPermission deniedফাইলে অ্যাক্সেস করার অনুমতি নেই
ENOENTNo such file or directoryনির্দিষ্ট ফাইল বা ডিরেক্টরি পাওয়া যায়নি
ENOMEMOut of memoryপর্যাপ্ত মেমোরি নেই
EIOInput/output errorইনপুট/আউটপুট অপারেশনে ত্রুটি
EBADFBad file descriptorঅবৈধ ফাইল ডেসক্রিপ্টর
EINVALInvalid argumentঅবৈধ আর্গুমেন্ট দেওয়া হয়েছে
ERANGEResult too largeফলাফল অত্যন্ত বড় এবং এটি ব্যবহারের সীমা ছাড়িয়ে গেছে
EPERMOperation not permittedঅননুমোদিত অপারেশন
EAGAINResource temporarily unavailableঅস্থায়ীভাবে রিসোর্স পাওয়া যাচ্ছে না

errno এর ব্যবহার

errno হলো একটি গ্লোবাল ইন্টিজার ভেরিয়েবল যা ত্রুটি কোড সংরক্ষণ করে। যখন কোনো ফাংশন ত্রুটি ঘটায়, তখন errno ত্রুটির ধরন নির্ধারণ করতে সহায়ক হয়। errno চেক করতে errno.h হেডার ফাইলটি ইনক্লুড করতে হয় এবং ত্রুটি কোড ব্যাখ্যা করার জন্য strerror() ফাংশন ব্যবহার করা যেতে পারে।

উদাহরণ: fopen() ফাংশনে errno এর ব্যবহার

#include <stdio.h>
#include <errno.h>
#include <string.h>

int main() {
    FILE *file;

    // "nonexistent.txt" নামের ফাইলটি খোলার চেষ্টা
    file = fopen("nonexistent.txt", "r");
    if (file == NULL) {
        printf("Error opening file: %s\n", strerror(errno));
        return 1;
    }

    fclose(file);
    return 0;
}

এখানে, যদি "nonexistent.txt" ফাইলটি বিদ্যমান না থাকে, তবে errno তে ENOENT ত্রুটি কোড সেট করা হবে, এবং strerror() এর মাধ্যমে ত্রুটির বিবরণ দেখানো হবে: **"No such file or directory"**।


strerror() ফাংশন

strerror() ফাংশনটি errno ত্রুটি কোডকে একটি ব্যাখ্যামূলক স্ট্রিংয়ে রূপান্তর করে। এটি ত্রুটির সংখ্যা অনুযায়ী একটি ব্যাখ্যামূলক বার্তা প্রদান করে, যা ডিবাগিং এবং ত্রুটি সংশোধনে সহায়ক।

সিঙ্কট্যাক্স:

char *strerror(int errnum);

উদাহরণ:

#include <stdio.h>
#include <errno.h>
#include <string.h>

int main() {
    errno = EACCES;  // অনুমতি সংক্রান্ত ত্রুটি কোড সেট
    printf("Error: %s\n", strerror(errno));  // ত্রুটির ব্যাখ্যা প্রদর্শন
    return 0;
}

perror() ফাংশন

perror() ফাংশনটি একটি ব্যাখ্যামূলক ত্রুটি বার্তা প্রদর্শন করে, যেখানে errno সেট করা ত্রুটি কোডের মানের উপর ভিত্তি করে বার্তা দেখানো হয়।

সিঙ্কট্যাক্স:

void perror(const char *s);

উদাহরণ:

#include <stdio.h>
#include <errno.h>

int main() {
    FILE *file = fopen("nonexistent.txt", "r");
    if (file == NULL) {
        perror("Error opening file");  // ত্রুটি বার্তা প্রদর্শন
        return 1;
    }

    fclose(file);
    return 0;
}

এখানে, যদি "nonexistent.txt" ফাইলটি বিদ্যমান না থাকে, তবে perror() ত্রুটি বার্তা দেখাবে: **"Error opening file: No such file or directory"**।


সারসংক্ষেপ

errno.h হেডার ফাইলটি সি প্রোগ্রামিংয়ে ত্রুটি পরিচালনার জন্য অপরিহার্য। errno ভেরিয়েবল এবং strerror()perror() ফাংশন ব্যবহার করে প্রোগ্রামের ত্রুটি সম্পর্কে নির্দিষ্ট তথ্য পাওয়া যায়। এটি প্রোগ্রাম ডিবাগ এবং ব্যবহারকারীর জন্য উন্নত ত্রুটি বার্তা প্রদান করতে সহায়ক।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion